package com.fary.beans.factory.config;

import com.fary.core.SpringException;

import java.lang.reflect.Constructor;

public interface SmartInstantiationAwareBeanPostProcessor extends InstantiationAwareBeanPostProcessor {

	default Class<?> predictBeanType(Class<?> beanClass, String beanName) throws SpringException {
		return null;
	}

	default Constructor<?>[] determineCandidateConstructors(Class<?> beanClass, String beanName) throws SpringException {
		return null;
	}

	default Object getEarlyBeanReference(Object bean, String beanName) throws SpringException {
		return bean;
	}

}